package h1.sismetro.negocio.almoxarifado;

import h1.sismetro.classesbasicas.Ferramenta;
import h1.sismetro.exceptions.AcessoAoBancoException;
import h1.sismetro.exceptions.ConexaoComBancoException;
import h1.sismetro.exceptions.FerramentaJaCadastradaException;
import h1.sismetro.exceptions.FerramentaNaoEncontradaException;
import h1.sismetro.exceptions.NenhumaFerramentaCadastradaException;

import java.util.List;
/**
 * 
 * @author Paulo
 * @version 1.0
 *
 */
public interface ICadastroFerramenta {
	public void cadastrar(Ferramenta novaFerramenta) throws ConexaoComBancoException, AcessoAoBancoException, FerramentaJaCadastradaException;
	public boolean existe(int codigo) throws ConexaoComBancoException, AcessoAoBancoException;
	public void alterar(Ferramenta novaFerramenta) throws ConexaoComBancoException, AcessoAoBancoException, FerramentaNaoEncontradaException;
	public void excluir(int codigo) throws ConexaoComBancoException, AcessoAoBancoException, FerramentaNaoEncontradaException;
	public Ferramenta recuperar(int codigo) throws ConexaoComBancoException, AcessoAoBancoException, FerramentaNaoEncontradaException;
	public List<Ferramenta> imprimir() throws ConexaoComBancoException, AcessoAoBancoException, NenhumaFerramentaCadastradaException;
	public int obterCodigo() throws ConexaoComBancoException, AcessoAoBancoException;
}
